home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
pascal
/
csdudes.exe
/
CSCCTR.CPP
< prev
next >
Wrap
Text File
|
1992-06-25
|
8KB
|
283 lines
// Personnell DataBase
// (C) Copyright 1992 Campbell Soup Company by Andrew Frantz
// CScctr.CPP
// contains the dialog and paradox engine source for costctr.db
// CIS --- 70712,3547
// ====================================================================
#include "csdudes.hpp"
// ====================================================================
void PXCostCtr::PXCostCtr()
{
char path[80];
strcpy(path, (char *) DATAPATH);
strcat(path, "\\");
strcat(path, "COSTCTR");
int err;
if((err = open(path, NULL)) != PXSUCCESS)
{
cerr << PXErrMsg(err) << endl;
cerr << "Hit a Key" << endl;
getch();
exit(0);
}
InitFields();
if(recfirst())
{
cerr << "Error getting first record" << endl;
cerr << "Hit a Key" << endl;
getch();
exit(0);
}
}
// =====================================================================
int PXCostCtr::InitFields()
{
int i = 0;
fldptr [i++] = &CostCtr;
fldptr [i++] = &CCDescription;
fldptr [i++] = &ManagerUserName;
fldptr [i] = NULL;
CostCtr.setinfo(*this, "CostCtr");
CCDescription.setinfo(*this, "CCDescription");
ManagerUserName.setinfo(*this, "ManagerUserName");
return (PXSUCCESS);
}
// =====================================================================
void PXCostCtr::AddRecord(CostCtrXferBuffer *data)
{
CostCtr = data->CostCtr;
CCDescription = data->CCDescription;
ManagerUserName = data->ManagerUserName;
int err;
if((err = recappend()) != PXSUCCESS)
{
messageBox(PXErrMsg(err), mfError);
}
}
// =====================================================================
void PXCostCtr::ChangeRecord(CostCtrXferBuffer *data)
{
CostCtr = data->CostCtr;
CCDescription = data->CCDescription;
ManagerUserName = data->ManagerUserName;
recupdate(); // error handling done in recupdate()
}
// =====================================================================
int PXCostCtr::FindRecord(char *data)
{
int err = CostCtr.search(data, SEARCHFIRST);
return(err);
}
// =====================================================================
CostCtrXferBuffer PXCostCtr::DisplayRecord()
{
CostCtrXferBuffer data;
recget();
CostCtr.get();
CCDescription.get();
ManagerUserName.get();
strncpy(data.CostCtr, CostCtr, sizeof(data.CostCtr));
strncpy(data.CCDescription, CCDescription, sizeof(data.CCDescription));
strncpy(data.ManagerUserName, ManagerUserName, sizeof(data.ManagerUserName));
return(data);
}
// ====================================================================
TCostCtrDlg::TCostCtrDlg(const char *title, int type)
: TDialog( TRect( 0, 0, 80, 23), title ),
TWindowInit(&TCostCtrDlg::initFrame)
{
DlgType=type;
// initialize the struct to 0
cmClear(); // init dlg structs
insert(new TInputLine(TRect(25,4,31,5), 4));
insert(new TInputLine(TRect(25,6,53,7), 26));
insert(new TInputLine(TRect(25,8,40,9), 13));
insert(new TStaticText(TRect(6,4,13,5), "CostCtr"));
insert(new TStaticText(TRect(6,6,17,7), "Description"));
insert(new TStaticText(TRect(6,8,21,9), "ManagerUserName"));
switch(DlgType)
{
case AddDlg:
insert( new TButton(TRect(3,16,13,18), "~A~dd", cmAddRec, bfDefault | bfBroadcast));
insert(new TButton(TRect(15,16,25,18), "~C~lear", cmClearRec, bfNormal | bfBroadcast));
break;
case EditDlg:
insert(new TButton(TRect(3,16,13,18), "~F~ind", cmFindRec, bfDefault | bfBroadcast));
insert(new TButton(TRect(15,16,25,18), "~C~hange", cmChangeRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(28,16,40,18), "~D~elete", cmDeleteRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(3,19,13,21), "~N~ext", cmNextRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(15,19,25,21), "~P~rev", cmPrevRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(28,19,39,21), "Fi~r~st", cmFirstRec, bfNormal | bfBroadcast));
insert(new TButton(TRect(41,19,51,21), "~L~ast", cmLastRec, bfNormal | bfBroadcast));
setDlgStructs();
break;
default:
break;
}
selectNext(False);
}
// =====================================================================
void TCostCtrDlg::handleEvent(TEvent& event)
{
TDialog::handleEvent(event);
if( event.what == evBroadcast )
{
switch( event.message.command )
{
case cmAddRec:
cmAdd();
break;
case cmClearRec:
cmClear();
break;
case cmFirstRec:
cmFirst();
break;
case cmPrevRec:
cmPrev();
break;
case cmLastRec:
cmLast();
break;
case cmNextRec:
cmNext();
break;
case cmChangeRec:
cmChange();
break;
case cmDeleteRec:
cmDelete();
break;
case cmFindRec:
cmFind();
break;
case cmsTestQuit:
cmTestQuit();
break;
default:
return;
}
clearEvent( event ); // clear event after handling
}
}
// =====================================================================
void TCostCtrDlg::cmTestQuit()
{
switch(DlgType)
{
case EditDlg:
if(messageBox(mfYesButton | mfNoButton,
"Do You Need To Save The Changes To\nThis Record ??") == cmYes)
{
cmChange();
}
break;
case AddDlg:
if(messageBox(mfYesButton | mfNoButton,
"Do You Wish To Save This Record ??") == cmYes)
{
cmAdd();
}
break;
default:
break;
}
}
// =====================================================================
void TCostCtrDlg::cmAdd()
{
getData((void *) &costCtrXferStruct);
TPersonnellApp::CostCtrDB->AddRecord(&costCtrXferStruct);
cmClear();
}
// =====================================================================
void TCostCtrDlg::cmClear()
{
memset(&costCtrXferStruct, 0x0, sizeof costCtrXferStruct);
setData((void *) &costCtrXferStruct);
memset(&tempCostCtr, 0x0, sizeof tempCostCtr);
}
// =====================================================================
void TCostCtrDlg::cmChange()
{
getData((void *) &costCtrXferStruct);
TPersonnellApp::CostCtrDB->ChangeRecord(&costCtrXferStruct);
setDlgStructs();
}
// =====================================================================
void TCostCtrDlg::cmDelete()
{
if(messageBox(mfYesButton | mfNoButton,
"Warning You Are About To Delete\nThis Record !!\nAre You Sure ??") == cmYes)
{
TPersonnellApp::CostCtrDB->recdelete();
setDlgStructs();
}
}
// ====================================================================
void TCostCtrDlg::cmFirst()
{
checkDlg();
TPersonnellApp::CostCtrDB->recfirst();
setDlgStructs();
}
// ====================================================================
void TCostCtrDlg::cmLast()
{
checkDlg();
TPersonnellApp::CostCtrDB->reclast();
setDlgStructs();
}
// ====================================================================
void TCostCtrDlg::cmPrev()
{
checkDlg();
TPersonnellApp::CostCtrDB->recprev();
setDlgStructs();
}
// ====================================================================
void TCostCtrDlg::cmNext()
{
checkDlg();
TPersonnellApp::CostCtrDB->recnext();
setDlgStructs();
}
// =====================================================================
void TCostCtrDlg::cmFind()
{
int err;
char findvar[25];
strcpy(findvar, "");
checkDlg();
if(inputBox("Find Cost Ctr", "Enter Cost Ctr:" ,findvar, 4) == cmOK)
{
if((err = TPersonnellApp::CostCtrDB->FindRecord(findvar)) != PXSUCCESS)
messageBox(PXErrMsg(err), mfError);
}
setDlgStructs();
}
// =====================================================================
void TCostCtrDlg::setDlgStructs()
{
tempCostCtr = costCtrXferStruct = TPersonnellApp::CostCtrDB->DisplayRecord();
setData((void *) &costCtrXferStruct);
}
// =====================================================================